A common task in software engineering is the representation of processes of an enterprise, i.e., production processes or business processes in a process model. The task of business process modelling (BPM) is typically performed by business process engineers who are familiar with the business processes of an enterprise and are trained in improving process efficiency. A ‘process’ is a chain of events in an enterprise, e.g., from purchase to supply or from manufacture to sales. Such events can also be services provided by individual system components, also referred to as ‘resources’.
A common problem when using such a service in a business process is that said predefined data structures are often proprietary and/or have been developed for the particular requirements of said service. Instances of said data structures acting as I/O interfaces of said services can therefore often not be processed by a standard business process engine.
One solution to this problem is solely using a proprietary process language and a corresponding runtime environment. This approach, however, limits the number of environments in which a service can be hosted and limits the portability of service descriptions. Another approach is to encode the details of the data exchange between the executed business process and a service within the business process plan. This is, however, problematic, if a once specified business process plan needs to be ported to another technical platform, as a business process engineer is typically familiar with only a limited number of technical platforms acting as runtime environments for said services.